;**********************************************************
;  Microchip Enhanced PIC16F1xxx C Compiler (CC16E), v1.00
;  Sun Jun 06 14:46:39 2021
;**********************************************************

	.device	"p16f1455", 1024, 8192

_$$::	.rs	0x23F0	; stack init. value


	.segment	CODE0 (ABS, =0x0000)
	nop
	movlp	main >> 8
	goto	main

	.segment	CODEi (REL, BEG)
_$init$::
	clrf	127
	clrf	126

	.segment	CODEi (REL, END)
	return

	.segment	ISR (REL, BEG)
	clrf	PCLATH
	btfss	126, 0
	bra	.+5
	movf	124, W
	movwf	FSR1L
	movf	125, W
	movwf	FSR1H

	movf	112, W
	movwi	--INDF1
	movf	113, W
	movwi	--INDF1
	movf	114, W
	movwi	--INDF1
	movf	115, W
	movwi	--INDF1

	.segment	ISR (REL, END)
	moviw	INDF1++
	movwf	115
	moviw	INDF1++
	movwf	114
	moviw	INDF1++
	movwf	113
	moviw	INDF1++
	movwf	112
	retfie

	.segment	CODE2 (REL) main:20
main_$1_a:	.equ	main_$data$+0
main_$2_c:	.equ	main_$data$+1
main_$3_n:	.equ	main_$data$+2
main_$4_lp:	.equ	main_$data$+6
main_$5_x:	.equ	main_$data$+8
main_$6_m:	.equ	main_$data$+10
main_$7_mp:	.equ	main_$data$+14
main_$8_ip:	.equ	main_$data$+16
main_$1:	.equ	main_$data$+18
main::
	.psel	main, _$init$
	call	_$init$
	movlw	_$$
	movwf	FSR1L
	movlw	_$$>>8
	movwf	FSR1H
; :: shift.c #14: LATA <<= 1;
	movlb	2
	lslf	12, F
; :: shift.c #15: LATC <<= a;
	.bsel	268, main_$data$
	incf	main_$1_a, W
	movwf	0x70
	.bsel	main_$data$, 270
	movf	14, W
	bra	_$L3
_$L2:
	lslf	WREG, F
_$L3::
	decfsz	0x70, F
	bra	_$L2
	movwf	14
; :: shift.c #16: a <<= 4;
	.bsel	270, main_$data$
	swapf	main_$1_a, F
	movlw	240
	andwf	main_$1_a, F
; :: shift.c #17: *ip <<= c;
	movf	main_$8_ip, W
	movwf	FSR0L
	movf	main_$8_ip+1, W
	movwf	FSR0H
	incf	main_$2_c, W
	bra	_$L5
_$L4:
	lslf	INDF0, F
	addfsr	0, 1
	rlf	INDF0, F
	addfsr	0, -1
_$L5::
	decfsz	WREG, F
	bra	_$L4
; :: shift.c #18: *lp <<= 18;
	movf	main_$4_lp, W
	movwf	FSR0L
	movf	main_$4_lp+1, W
	movwf	FSR0H
	moviw	1[INDF0]
	movwi	3[INDF0]
	moviw	0[INDF0]
	movwi	2[INDF0]
	movlw	0
	movwi	1[INDF0]
	movwi	0[INDF0]
	addfsr	0, 2
	movlw	2
_$L6::
	lslf	INDF0, F
	addfsr	0, 1
	rlf	INDF0, F
	addfsr	0, -1
	decfsz	WREG, F
	bra	_$L6
; :: shift.c #19: n <<= 32;
	clrf	main_$3_n+3
	clrf	main_$3_n+2
	clrf	main_$3_n+1
	clrf	main_$3_n
; :: shift.c #20: a >>= 4;
	swapf	main_$1_a, F
	movlw	15
	andwf	main_$1_a, F
; :: shift.c #21: c = 15;
	movwf	main_$2_c
; :: shift.c #22: PORTA >>= 1;
	.bsel	main_$data$, 12
	lsrf	12, F
; :: shift.c #23: n >>= 4;
	movlw	4
_$L7::
	.bsel	12, main_$data$
	lsrf	main_$3_n+3, F
	rrf	main_$3_n+2, F
	rrf	main_$3_n+1, F
	rrf	main_$3_n, F
	decfsz	WREG, F
	bra	_$L7
; :: shift.c #25: *lp >>= 15;
	addfsr	INDF0, -2
	moviw	1[INDF0]
	movwi	0[INDF0]
	moviw	2[INDF0]
	movwi	1[INDF0]
	moviw	3[INDF0]
	movwi	2[INDF0]
	movlw	0
	movwi	3[INDF0]
	addfsr	0, 2
	movlw	7
_$L8::
	lsrf	INDF0, F
	addfsr	0, -1
	rrf	INDF0, F
	addfsr	0, -1
	rrf	INDF0, F
	decfsz	WREG, F
	bra	_$L8
; :: shift.c #26: *mp >>= 15;
	movf	main_$7_mp, W
	movwf	FSR0L
	movf	main_$7_mp+1, W
	movwf	FSR0H
	movlw	15
_$L9::
	addfsr	0, 3
	asrf	INDF0, F
	addfsr	0, -1
	rrf	INDF0, F
	addfsr	0, -1
	rrf	INDF0, F
	addfsr	0, -1
	rrf	INDF0, F
	decfsz	WREG, F
	bra	_$L9
; :: shift.c #27: PORTA = n << 1;
	lslf	main_$3_n, W
	.bsel	main_$data$, 12
	movwf	12
; :: shift.c #28: a = c << 1;
	.bsel	12, main_$data$
	lslf	main_$2_c, W
	movwf	main_$1_a
; :: shift.c #29: a = a << c;
	incf	main_$2_c, W
	bra	_$L11
_$L10:
	lslf	main_$1_a, F
_$L11::
	decfsz	WREG, F
	bra	_$L10
; :: shift.c #31: n = a << 10;
	clrf	main_$3_n
	movf	main_$1_a, W
	movwf	main_$3_n+1
	clrf	main_$3_n+2
	clrf	main_$3_n+3
	movlw	2
_$L12:
	lslf	main_$3_n+1, F
	rlf	main_$3_n+2, F
	rlf	main_$3_n+3, F
	decfsz	WREG, F
	bra	_$L12
; :: shift.c #33: n = 10 << a;
	movlw	10
	movwf	main_$3_n
	clrf	main_$3_n+1
	clrf	main_$3_n+2
	clrf	main_$3_n+3
	incf	main_$1_a, W
	bra	_$L14
_$L13:
	lslf	main_$3_n, F
	rlf	main_$3_n+1, F
	rlf	main_$3_n+2, F
	rlf	main_$3_n+3, F
_$L14::
	decfsz	WREG, F
	bra	_$L13
; :: shift.c #34: n = a << 30;
	clrf	main_$3_n
	clrf	main_$3_n+1
	clrf	main_$3_n+2
	movf	main_$1_a, W
	movwf	main_$3_n+3
	swapf	WREG, W
	andlw	240
	lslf	WREG, W
	lslf	WREG, W
	movwf	main_$3_n+3
; :: shift.c #35: a = x >> 8;
	movf	main_$5_x+1, W
	movwf	main_$1_a
; :: shift.c #36: x = a >> 2;
	movf	main_$1_a, W
	movwf	main_$5_x
	clrf	main_$5_x+1
	movlw	2
_$L15::
	lsrf	main_$5_x+1, F
	rrf	main_$5_x, F
	decfsz	WREG, F
	bra	_$L15
; :: shift.c #37: PORTA = *mp << foo();
	.psel	_$init$, foo
	call	foo
	incf	0x70, W
	movwi	--INDF1
	.bsel	main_$data$
	movf	main_$7_mp, W
	movwf	FSR0L
	movf	main_$7_mp+1, W
	movwf	FSR0H
	moviw	0[INDF0]
	movwf	112
	bra	_$L17
_$L16:
	lslf	112, F
_$L17:
	decfsz	INDF1, F
	bra	_$L16
	addfsr	INDF1, 1
	movf	112, W
	.bsel	main_$data$, 12
	movwf	12
; :: shift.c #38: PORTA = *lp >> 1;
	.bsel	12, main_$data$
	movf	main_$4_lp, W
	movwf	FSR0L
	movf	main_$4_lp+1, W
	movwf	FSR0H
	addfsr	0, 1
	lsrf	INDF0, W
	addfsr	0, -1
	rrf	INDF0, W
	.bsel	main_$data$, 12
	movwf	12
; :: shift.c #39: n = foo() + foo2();
	call	foo
	movf	112, W
	.bsel	main_$data$
	movwf	main_$1
	movf	113, W
	movwf	main_$1+1
	.psel	foo, foo2
	call	foo2
	.bsel	main_$data$
	movf	main_$1, W
	movwf	main_$3_n
	movf	main_$1+1, W
	movwf	main_$3_n+1
	andlw	128
	btfss	3, 2
	movlw	255
	movwf	main_$3_n+2
	movwf	main_$3_n+3
	movf	112, W
	addwf	main_$3_n, F
	movf	113, W
	addwfc	main_$3_n+1, F
	andlw	128
	btfss	3, 2
	movlw	255
	addwfc	main_$3_n+2, F
	addwfc	main_$3_n+3, F
	.psel	foo2, main
	return
; function(s) called::
	.fcall	main, foo2
	.fcall	main, foo
	.fcall	main, _$init$

	.end
